<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>




<script>

/*深拷贝和浅拷贝*/


// 对象覆盖
    const {value: abc} = {value: 123, name: 'zhangsan'};
    console.log(abc)   //123



//浅拷贝 且会影响原来的对象
var obj1 = { a: 1 };
var obj2 = obj1;

console.log(obj2); // { a: 1 }

obj2.a=2;
console.log(obj1)


//assign  对对象中简单属性 深拷贝  但是对对象中的对象也是浅拷贝（拷贝引用地址）
var obj = { a: 1 };
var obj2 = Object.assign({}, obj);

console.log(obj2); // { a: 1 }


//使用递归 实现 深拷贝
function deepCopy(newobj,oldobj){
    for(let k in oldobj){
        const item=oldobj[k];
        if(item instanceof Array){
            newobj[k]=[];
            deepCopy(newobj[k],item)
        }else if(item instanceof Object){
            newobj[k]={};
            deepCopy(newobj[k],item)
        }else{
            newobj[k]=item;
        }
    }
}


let aa={
    name:'zhangsan',
    msg:{
        age:18
    }
}
const bb={}
deepCopy(bb,aa)
console.log(bb)

</script>
</body>
</html>